﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace Game
{
    class Tile
    {
        #region Initialisieren

        //Eigenschaften
        Image   res;
        Image   tileImg;
        Point   offset;
        String  id;
        bool    collisionEnabled;

        //Public Eigenschaften
        public string Group;

        //Konstruktor
        public Tile(Point offset, String id, bool collision)
        {
            this.res                = Game.Properties.Resources.tiles;
            this.offset             = new Point(offset.X * 64, offset.Y * 64);
            this.id                 = id;
            this.collisionEnabled   = collision;
            this.Group              = "none";

            //Passendes Rechteck mit Offset bestimmen und Tile herausschneiden
            Bitmap      tileset = (Bitmap)res;
            Rectangle   rect    = new Rectangle(this.offset.X, this.offset.Y, 64, 64);
            this.tileImg        = (Image)tileset.Clone(rect, tileset.PixelFormat);
        }

        public Tile(Point offset, String id, bool collision, string group)
        {
            this.res                = Game.Properties.Resources.tiles;
            this.offset             = new Point(offset.X * 64, offset.Y * 64);
            this.id                 = id;
            this.collisionEnabled   = collision;
            this.Group              = group;

            //Passendes Rechteck mit Offset bestimmen und Tile herausschneiden
            Bitmap tileset  = (Bitmap)res;
            Rectangle rect  = new Rectangle(this.offset.X, this.offset.Y, 64, 64);
            this.tileImg    = (Image)tileset.Clone(rect, tileset.PixelFormat);
        }

        #endregion

        #region Tools
        //ID zurückgeben
        public string getID()
        {
            return id;
        }

        //Gibt zurück ob Kollision für dieses Tile eingeschaltet ist
        public bool collissionEnabled()
        {
            return collisionEnabled;
        }

        //Gibt das 64x64 große Tile Image zurück
        public Image getImage()
        {
            return (Image)tileImg;
        }
        #endregion
    }
}
